/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Util;
import java.util.List;
import javax.swing.JButton;

import javax.swing.SwingWorker;


public class Worker extends SwingWorker<Double, Integer> {
    
    private final JButton btnBotonA;
    private final JButton btnBotonB;

    
    public Worker(JButton jButonA, JButton jButonB) {
        this.btnBotonA = jButonA;
        this.btnBotonB = jButonB;
    }

    /**
     * Tarea que tarda mucho y se ejecutara en un hilo separado.
     */
    @Override
    @SuppressWarnings("SleepWhileInLoop")
    protected Double doInBackground() throws Exception {
        System.out.println("doInBackground() esta en el hilo "
                + Thread.currentThread().getName());
        for (int i = 0; i < 100; i++) {
            try {
                Thread.sleep(50); 
            } catch (InterruptedException e) {
                System.out.println("interrumpido");
            }

            // Se pasa valor para la barra de progreso. ESto llamara al metodo
            // process() en el hilo de despacho de eventos.
            publish(i + 1);
        }

        // Supuesto resultado de la tarea que tarda mucho.
        return 100.0;
    }

    /**
     * Tarea terminada, SwingWorker llama a este metodo en el hilo de despacho
     * de eventos. Aqui actualizamos la etiqueta para que ponga "Hecho".
     */
    @Override
    protected void done() {
//        frmMenuPrincipal oMenuPrincipal= new frmMenuPrincipal();
//        oMenuPrincipal.setVisible(true); 
    }

    /**
     * SwingWorker llama a este metodo en el hilo de despacho de eventos cuando
     * llamamos a publish() y le pasa los mismos parametros que nosotros
     * pongamos en publish().<br>
     * En este ejemplo, nosotros pasamos el valor de la barra de progreso.
     */
    @Override
    protected void process(List<Integer> chunks) {
        System.out.println("process() esta en el hilo "
                + Thread.currentThread().getName());
       // progreso.setValue(chunks.get(0));
    }
}